package kr.co.insoft.core.mapper.orchestration;

import java.util.List;

import kr.co.insoft.core.model.orchestration.CompositeEntityModel;
import kr.co.insoft.core.model.orchestration.CompositeStackEntityModel;
import kr.co.insoft.core.model.orchestration.ProjectEntityModel;
import kr.co.insoft.core.model.orchestration.ServiceEntityModel;
import kr.co.insoft.framework.mapper.UUIDMapper;
import kr.co.insoft.framework.mybatis.Mapper;

@Mapper
public interface OrchestrationMapper extends UUIDMapper {

	public void createProject(ProjectEntityModel projectEntityModel);

	public ProjectEntityModel getProject(ProjectEntityModel projectEntityModel);

	public CompositeEntityModel getComposite(
			CompositeEntityModel compositeEntityModel);

	public void createService(ServiceEntityModel serviceEntityModel);

	public ServiceEntityModel getService(ServiceEntityModel serviceEntityModel);

	public void createComposite(CompositeEntityModel compositeEntityModel);

	public int getChildCountProject(ProjectEntityModel projectEntityModel);

	public void removeProject(ProjectEntityModel projectEntityModel);

	public int getChildCountComposite(CompositeEntityModel compositeEntityModel);

	public int getChildCountService(ServiceEntityModel serviceEntityModel);

	public void removeComposite(CompositeEntityModel compositeEntityModel);

	public void removeService(ServiceEntityModel serviceEntityModel);

	public List<CompositeEntityModel> getCompositesForSearchCondition(
			CompositeEntityModel compositeEntityModel);

	public List<ProjectEntityModel> getProjectsForSearchCondition(
			ProjectEntityModel projectEntityModel);

	public List<ServiceEntityModel> getServicesForSearchCondition(
			ServiceEntityModel serviceEntityModel);

	public void createStack(CompositeStackEntityModel compositeStackEntityModel);
}
